#pragma once
#include <vector>

using namespace std;

struct SVector3
{
public:
	float x;
	float y;
	float z;
};

struct SVector2
{
public:
	float x;
	float y;	
};

struct SQuaternion
{
public:
	float x;
	float y;
	float z;
	float w;
};

struct SCamera
{
public:
	float Fov;	
	const char* Name;
	float NearPlane;
	float FarPlane;
	SVector3 Position;
	SVector3 Target;
};

struct SVertice
{
public:
	SVector3 Position;
	SVector3 Normal;
	SVector2 TextureCoord;
	SVector3 Tangent;
	SVector3 Binormal;
};

struct STransformation
{
public:
	SVector3 Translation;
	SVector3 Scale;
	SQuaternion Rotation;
};

struct SMap
{
public:
	const char* MapType;
	const char* Path;
};

struct SModelo
{
public:
	const char* ModelName;
	STransformation Transformation;

	vector<SVertice> Vertices;
	vector<int> Indices;
	vector<SMap> Maps;
};

struct SCena
{
public:
	const char*  SceneName;
	vector<SCamera> Cameras;
	vector<SModelo> Modelos;

};